package com.thwj.project.biz.domain;

    import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.thwj.common.annotation.Excel;
import lombok.*;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

;

/**
 * 活动报名对象 biz_activity_signup
 *
 * @author generate
 * @date 2023-06-16
 */

@Getter
@Setter
@ToString
@Builder
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = true)
@TableName("biz_activity_signup")
public class ActivitySignup extends Model<ActivitySignup>{
private static final long serialVersionUID=1L;

    /** 主键 */
    @TableId(type = IdType.AUTO)
    private Long id;

    /** 活动id */
            @Excel(name = "活动id")
    private Long activityId;

    /** 报名人id */
            @Excel(name = "报名人id")
    private Long userId;

    /** 昵称 */
            @Excel(name = "昵称")
    private String nickname;

    /** 手机号 */
            @Excel(name = "手机号")
    private String phone;

    /** 性别（1：男 2：女） */
            @Excel(name = "性别", readConverterExp = "1=：男,2=：女")
    private Integer gender;

    @Excel(name = "姓名")
            private String realName;

    @Excel(name = "身份证号")
            private String idCardNumber;

    /** 是否是挂人 外部用户 */
            @Excel(name = "是否是挂人 外部用户")
    private Boolean outUser;

    /** 活动引用过来的支付渠道 */
            @Excel(name = "活动引用过来的支付渠道")
    private Integer payWay;

    /** 活动引用过来的费用类型 */
            @Excel(name = "活动引用过来的费用类型")
    private Integer chargeType;

    /** 报名状态（1：报名中 2：报名成功 3：取消报名） */
            @Excel(name = "报名状态", readConverterExp = "1=：报名中,2=：报名成功,3=：取消报名")
    private Integer status;

    @Excel(name = "结算时间")
            private Date settleDate;
    /** 取消报名时间 */
            @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
            @Excel(name = "取消报名时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date cancelDate;

    /** 取消报名时间 */
    @Excel(name = "取消原因", width = 30)
            private String cancelReason;

    /** 优惠金额 */
            @Excel(name = "优惠金额")
    private BigDecimal discountPrice;

    /** 实际报名金额 */
            @Excel(name = "实际报名金额")
    private BigDecimal actualMoney;

    /** 订单编号 A打头 挂人订单公用一个订单号 */
            @Excel(name = "订单编号 A打头 挂人订单公用一个订单号")
    private String orderNumber;

    /** 支付时间 */
            @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
            @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date payDate;

    /** 提交人 */
            @Excel(name = "提交人")
    private Long createUserId;

    /** 创建时间 */
            @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
            @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createDate;

    /** $column.columnComment */
            @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Integer versionNo;




    @Override
    public Serializable pkVal() {
        return this.id;
    }
}
